package cn.mandifal.manager.service;

import cn.mandifal.pojo.DpSpecification;
import cn.mandifal.pojo.SpecificationCombine;
import entity.PageResult;

import java.util.List;
import java.util.Map;

/**
 * 商品规格管理 接口
 * @author ws
 */
public interface GoodsSpecificationService {
    /**
     * 查询所有规格，分页显示
     * @param pageNum 页码
     * @param pageSize 页面大小
     * @return 返回分页结果
     */
    public PageResult findAll(int pageNum,int pageSize);

    /**
     * 模糊查询，结果分页展示
     * @param pageNum 页码
     * @param pageSize 页面大小
     * @param dpSpecification 商品规格实体
     * @return 返回分页结果
     */
    public PageResult findAll(int pageNum,int pageSize,DpSpecification dpSpecification);

    /**
     * 添加规格
     * @param specificationCombine 规格组合实体
     */
    public void add(SpecificationCombine specificationCombine);

    /**
     * 根据 id查询规格及规格选项
     * @param id 规格 id
     * @return 返回规格组合实体
     */
    public SpecificationCombine findOne(Long id);
    /**
     * 更新规格
     * @param specificationCombine 规格组合实体
     */
    public void update(SpecificationCombine specificationCombine);

    /**
     * 根据 id 删除规格及实体
     * @param ids 规格 id 的数组
     */
    public void delete(Long[] ids);

    /**
     * 删除规格选项
     * @param id 规格选项 id
     */
    public void deleteOpt(Long id);

    /**
     * 选择规格 id 和 name name 以 text 返回
     * @return 返回集合类型的 list 列表
     */
    public List<Map> selectSpecList();
}
